// 路由守卫 控制权限
import router from './router'
import store from './store'
// 导入Nprogress包 及 样式文件
import Nprogress from 'nprogress' // 引入进度条插件
import 'nprogress/nprogress.css' // 引入进度条样式

const whiteList = ['/login', '404']

// 路由前置守卫 添加用户权限
// to  要去哪  from  从哪来
// next() 放行  next(false) 不放行   next("地址") 放行并跳转到对应的地址  next({path:地址})
router.beforeEach(async(to, from, next) => {
  // 开启进度条效果
  Nprogress.start()
  // 获取token
  const token = store.getters.token

  if (token) {
    // 有 token
    if (to.path === '/login') {
      next('/')
      Nprogress.done()
    } else {
      // 在这里获取用户信息
      if (!store.state.user.UserInfo.userId) {
        await store.dispatch('user/getUserInfo')
      }
      next()
    }
    // console.log(store.state.user.UserInfo.userId)
  } else {
    // 没有token
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next('/login')
      Nprogress.done()
    }
  }
})
// 路由后置守卫
router.afterEach((to, from) => {
  // 关闭进度条
  setTimeout(function() {
    Nprogress.done()
  }, 500)
})
